Connected to ml10 (Python 3.10.13)

In [ ]:
import tensorflow as tf
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, UpSampling2D
from keras.preprocessing.image import ImageDataGenerator
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
import random
from sklearn.neighbors import KernelDensity
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, classification_report
import glob

# Check GPU availability
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

SIZE = 224
batch_size = 64

datagen = ImageDataGenerator(rescale=1./255)

train_generator = datagen.flow_from_directory(
    'datasets/train',
    target_size=(SIZE, SIZE),
    batch_size=batch_size,
    class_mode='input',
    classes=['OK'],
    shuffle=False
)

validation_generator = datagen.flow_from_directory(
    'datasets/val',
    target_size=(SIZE, SIZE),
    batch_size=batch_size,
    class_mode='input',
    classes=['OK'],
    shuffle=False
)

anomaly_generator = datagen.flow_from_directory(
    'datasets/train',
    target_size=(SIZE, SIZE),
    batch_size=batch_size,
    class_mode='input',
    classes=['NG'],
    shuffle=False
)

print(f"Number of training samples: {len(train_generator)}")
print(f"Number of validation samples: {len(validation_generator)}")

# Define the autoencoder model

# Encoder
model = Sequential()
model.add(Conv2D(64, (3, 3), activation='relu', padding='same', input_shape=(SIZE, SIZE, 3)))
model.add(MaxPooling2D((2, 2), padding='same'))
model.add(Conv2D(32, (3, 3), activation='relu', padding='same'))
model.add(MaxPooling2D((2, 2), padding='same'))
model.add(Conv2D(16, (3, 3), activation='relu', padding='same'))
model.add(MaxPooling2D((2, 2), padding='same'))
model.add(Conv2D(8, (3, 3), activation='relu', padding='same'))
model.add(MaxPooling2D((2, 2), padding='same'))
model.add(Conv2D(8, (3, 3), activation='relu', padding='same'))
model.add(MaxPooling2D((2, 2), padding='same'))

# Decoder
model.add(Conv2D(8, (3, 3), activation='relu', padding='same'))
model.add(UpSampling2D((2, 2)))
model.add(Conv2D(8, (3, 3), activation='relu', padding='same'))
model.add(UpSampling2D((2, 2)))
model.add(Conv2D(16, (3, 3), activation='relu', padding='same'))
model.add(UpSampling2D((2, 2)))
model.add(Conv2D(32, (3, 3), activation='relu', padding='same'))
model.add(UpSampling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu', padding='same'))
model.add(UpSampling2D((2, 2)))

model.add(Conv2D(3, (3, 3), activation='sigmoid', padding='same'))

model.compile(optimizer='adam', loss='mean_squared_error', metrics=['mse'])
model.summary()

# Fit the model
history = model.fit(
        train_generator,
        epochs=500,
        validation_data=validation_generator,
        shuffle=True
)
Num GPUs Available:  1
Found 360 images belonging to 1 classes.
Found 206 images belonging to 1 classes.
Found 360 images belonging to 1 classes.
Number of training samples: 6
Number of validation samples: 4
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 conv2d (Conv2D)             (None, 224, 224, 64)      1792      
                                                                 
 max_pooling2d (MaxPooling2D  (None, 112, 112, 64)     0         
 )                                                               
                                                                 
 conv2d_1 (Conv2D)           (None, 112, 112, 32)      18464     
                                                                 
 max_pooling2d_1 (MaxPooling  (None, 56, 56, 32)       0         
 2D)                                                             
                                                                 
 conv2d_2 (Conv2D)           (None, 56, 56, 16)        4624      
                                                                 
 max_pooling2d_2 (MaxPooling  (None, 28, 28, 16)       0         
 2D)                                                             
                                                                 
 conv2d_3 (Conv2D)           (None, 28, 28, 8)         1160      
                                                                 
 max_pooling2d_3 (MaxPooling  (None, 14, 14, 8)        0         
 2D)                                                             
                                                                 
 conv2d_4 (Conv2D)           (None, 14, 14, 8)         584       
                                                                 
 max_pooling2d_4 (MaxPooling  (None, 7, 7, 8)          0         
 2D)                                                             
                                                                 
 conv2d_5 (Conv2D)           (None, 7, 7, 8)           584       
                                                                 
 up_sampling2d (UpSampling2D  (None, 14, 14, 8)        0         
 )                                                               
                                                                 
 conv2d_6 (Conv2D)           (None, 14, 14, 8)         584       
                                                                 
 up_sampling2d_1 (UpSampling  (None, 28, 28, 8)        0         
 2D)                                                             
                                                                 
 conv2d_7 (Conv2D)           (None, 28, 28, 16)        1168      
                                                                 
 up_sampling2d_2 (UpSampling  (None, 56, 56, 16)       0         
 2D)                                                             
                                                                 
 conv2d_8 (Conv2D)           (None, 56, 56, 32)        4640      
                                                                 
 up_sampling2d_3 (UpSampling  (None, 112, 112, 32)     0         
 2D)                                                             
                                                                 
 conv2d_9 (Conv2D)           (None, 112, 112, 64)      18496     
                                                                 
 up_sampling2d_4 (UpSampling  (None, 224, 224, 64)     0         
 2D)                                                             
                                                                 
 conv2d_10 (Conv2D)          (None, 224, 224, 3)       1731      
                                                                 
=================================================================
Total params: 53,827
Trainable params: 53,827
Non-trainable params: 0
_________________________________________________________________
Epoch 1/500
6/6 [==============================] - 13s 1s/step - loss: 0.0538 - mse: 0.0538 - val_loss: 0.0243 - val_mse: 0.0243
Epoch 2/500
6/6 [==============================] - 2s 311ms/step - loss: 0.0191 - mse: 0.0191 - val_loss: 0.0183 - val_mse: 0.0183
Epoch 3/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0145 - mse: 0.0145 - val_loss: 0.0123 - val_mse: 0.0123
Epoch 4/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0115 - mse: 0.0115 - val_loss: 0.0114 - val_mse: 0.0114
Epoch 5/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0103 - mse: 0.0103 - val_loss: 0.0101 - val_mse: 0.0101
Epoch 6/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0096 - mse: 0.0096 - val_loss: 0.0097 - val_mse: 0.0097
Epoch 7/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0093 - mse: 0.0093 - val_loss: 0.0092 - val_mse: 0.0092
Epoch 8/500
6/6 [==============================] - 2s 330ms/step - loss: 0.0091 - mse: 0.0091 - val_loss: 0.0091 - val_mse: 0.0091
Epoch 9/500
6/6 [==============================] - 2s 341ms/step - loss: 0.0090 - mse: 0.0090 - val_loss: 0.0091 - val_mse: 0.0091
Epoch 10/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0088 - mse: 0.0088 - val_loss: 0.0089 - val_mse: 0.0089
Epoch 11/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0086 - mse: 0.0086 - val_loss: 0.0088 - val_mse: 0.0088
Epoch 12/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0084 - mse: 0.0084 - val_loss: 0.0087 - val_mse: 0.0087
Epoch 13/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0083 - mse: 0.0083 - val_loss: 0.0086 - val_mse: 0.0086
Epoch 14/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0082 - mse: 0.0082 - val_loss: 0.0086 - val_mse: 0.0086
Epoch 15/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0081 - mse: 0.0081 - val_loss: 0.0084 - val_mse: 0.0084
Epoch 16/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0080 - mse: 0.0080 - val_loss: 0.0083 - val_mse: 0.0083
Epoch 17/500
6/6 [==============================] - 2s 330ms/step - loss: 0.0080 - mse: 0.0080 - val_loss: 0.0083 - val_mse: 0.0083
Epoch 18/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0079 - mse: 0.0079 - val_loss: 0.0082 - val_mse: 0.0082
Epoch 19/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0079 - mse: 0.0079 - val_loss: 0.0082 - val_mse: 0.0082
Epoch 20/500
6/6 [==============================] - 2s 331ms/step - loss: 0.0078 - mse: 0.0078 - val_loss: 0.0081 - val_mse: 0.0081
Epoch 21/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0077 - mse: 0.0077 - val_loss: 0.0081 - val_mse: 0.0081
Epoch 22/500
6/6 [==============================] - 2s 332ms/step - loss: 0.0077 - mse: 0.0077 - val_loss: 0.0081 - val_mse: 0.0081
Epoch 23/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0076 - mse: 0.0076 - val_loss: 0.0080 - val_mse: 0.0080
Epoch 24/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0076 - mse: 0.0076 - val_loss: 0.0080 - val_mse: 0.0080
Epoch 25/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0075 - mse: 0.0075 - val_loss: 0.0080 - val_mse: 0.0080
Epoch 26/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0075 - mse: 0.0075 - val_loss: 0.0079 - val_mse: 0.0079
Epoch 27/500
6/6 [==============================] - 2s 313ms/step - loss: 0.0074 - mse: 0.0074 - val_loss: 0.0080 - val_mse: 0.0080
Epoch 28/500
6/6 [==============================] - 2s 311ms/step - loss: 0.0073 - mse: 0.0073 - val_loss: 0.0079 - val_mse: 0.0079
Epoch 29/500
6/6 [==============================] - 2s 313ms/step - loss: 0.0072 - mse: 0.0072 - val_loss: 0.0078 - val_mse: 0.0078
Epoch 30/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0072 - mse: 0.0072 - val_loss: 0.0077 - val_mse: 0.0077
Epoch 31/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0071 - mse: 0.0071 - val_loss: 0.0077 - val_mse: 0.0077
Epoch 32/500
6/6 [==============================] - 2s 313ms/step - loss: 0.0070 - mse: 0.0070 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 33/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0070 - mse: 0.0070 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 34/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0069 - mse: 0.0069 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 35/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0069 - mse: 0.0069 - val_loss: 0.0077 - val_mse: 0.0077
Epoch 36/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0069 - mse: 0.0069 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 37/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0069 - mse: 0.0069 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 38/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0069 - mse: 0.0069 - val_loss: 0.0077 - val_mse: 0.0077
Epoch 39/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0069 - mse: 0.0069 - val_loss: 0.0077 - val_mse: 0.0077
Epoch 40/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0069 - mse: 0.0069 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 41/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 42/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 43/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 44/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 45/500
6/6 [==============================] - 2s 312ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 46/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 47/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 48/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0077 - val_mse: 0.0077
Epoch 49/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 50/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 51/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 52/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 53/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 54/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 55/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 56/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 57/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 58/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 59/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 60/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 61/500
6/6 [==============================] - 2s 342ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 62/500
6/6 [==============================] - 2s 344ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 63/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 64/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 65/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 66/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 67/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 68/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 69/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 70/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 71/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 72/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 73/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 74/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0079 - val_mse: 0.0079
Epoch 75/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 76/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 77/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 78/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 79/500
6/6 [==============================] - 2s 388ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 80/500
6/6 [==============================] - 2s 415ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 81/500
6/6 [==============================] - 2s 360ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 82/500
6/6 [==============================] - 2s 363ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 83/500
6/6 [==============================] - 2s 381ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 84/500
6/6 [==============================] - 2s 372ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 85/500
6/6 [==============================] - 2s 332ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 86/500
6/6 [==============================] - 2s 350ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 87/500
6/6 [==============================] - 2s 343ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 88/500
6/6 [==============================] - 2s 374ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 89/500
6/6 [==============================] - 2s 362ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 90/500
6/6 [==============================] - 2s 363ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 91/500
6/6 [==============================] - 2s 407ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 92/500
6/6 [==============================] - 2s 378ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 93/500
6/6 [==============================] - 2s 357ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 94/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 95/500
6/6 [==============================] - 2s 335ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 96/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 97/500
6/6 [==============================] - 2s 350ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 98/500
6/6 [==============================] - 2s 355ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 99/500
6/6 [==============================] - 2s 342ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 100/500
6/6 [==============================] - 2s 343ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 101/500
6/6 [==============================] - 2s 337ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 102/500
6/6 [==============================] - 2s 348ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 103/500
6/6 [==============================] - 2s 366ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 104/500
6/6 [==============================] - 2s 361ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 105/500
6/6 [==============================] - 2s 347ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 106/500
6/6 [==============================] - 2s 352ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 107/500
6/6 [==============================] - 2s 357ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 108/500
6/6 [==============================] - 2s 353ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 109/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 110/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 111/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 112/500
6/6 [==============================] - 2s 330ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 113/500
6/6 [==============================] - 2s 363ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 114/500
6/6 [==============================] - 2s 363ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 115/500
6/6 [==============================] - 2s 351ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 116/500
6/6 [==============================] - 2s 354ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 117/500
6/6 [==============================] - 2s 370ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 118/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 119/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 120/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 121/500
6/6 [==============================] - 2s 344ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 122/500
6/6 [==============================] - 2s 381ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 123/500
6/6 [==============================] - 2s 404ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 124/500
6/6 [==============================] - 2s 400ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 125/500
6/6 [==============================] - 2s 401ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 126/500
6/6 [==============================] - 2s 356ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 127/500
6/6 [==============================] - 2s 359ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 128/500
6/6 [==============================] - 2s 346ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 129/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 130/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 131/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 132/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 133/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 134/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 135/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 136/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 137/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 138/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 139/500
6/6 [==============================] - 2s 345ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 140/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 141/500
6/6 [==============================] - 2s 342ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 142/500
6/6 [==============================] - 2s 329ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 143/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 144/500
6/6 [==============================] - 2s 351ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 145/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 146/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 147/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 148/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 149/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 150/500
6/6 [==============================] - 2s 329ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 151/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 152/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 153/500
6/6 [==============================] - 2s 335ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 154/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 155/500
6/6 [==============================] - 2s 311ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 156/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 157/500
6/6 [==============================] - 2s 348ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 158/500
6/6 [==============================] - 2s 370ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 159/500
6/6 [==============================] - 2s 366ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 160/500
6/6 [==============================] - 2s 352ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 161/500
6/6 [==============================] - 2s 349ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 162/500
6/6 [==============================] - 2s 351ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 163/500
6/6 [==============================] - 2s 381ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 164/500
6/6 [==============================] - 2s 372ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 165/500
6/6 [==============================] - 2s 368ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 166/500
6/6 [==============================] - 2s 389ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 167/500
6/6 [==============================] - 2s 377ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 168/500
6/6 [==============================] - 2s 373ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 169/500
6/6 [==============================] - 2s 335ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 170/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 171/500
6/6 [==============================] - 2s 357ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 172/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 173/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 174/500
6/6 [==============================] - 2s 361ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 175/500
6/6 [==============================] - 2s 359ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 176/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 177/500
6/6 [==============================] - 2s 336ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 178/500
6/6 [==============================] - 2s 341ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 179/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 180/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 181/500
6/6 [==============================] - 2s 330ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 182/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 183/500
6/6 [==============================] - 2s 360ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 184/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 185/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 186/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 187/500
6/6 [==============================] - 2s 328ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 188/500
6/6 [==============================] - 2s 334ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 189/500
6/6 [==============================] - 2s 336ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 190/500
6/6 [==============================] - 2s 336ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 191/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 192/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 193/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 194/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 195/500
6/6 [==============================] - 2s 331ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 196/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 197/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 198/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 199/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 200/500
6/6 [==============================] - 2s 353ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 201/500
6/6 [==============================] - 2s 354ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 202/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 203/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 204/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 205/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 206/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 207/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 208/500
6/6 [==============================] - 2s 329ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 209/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 210/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 211/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 212/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 213/500
6/6 [==============================] - 2s 331ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 214/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 215/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 216/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 217/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 218/500
6/6 [==============================] - 2s 353ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 219/500
6/6 [==============================] - 2s 360ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 220/500
6/6 [==============================] - 2s 388ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 221/500
6/6 [==============================] - 2s 398ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 222/500
6/6 [==============================] - 2s 379ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 223/500
6/6 [==============================] - 2s 348ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 224/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 225/500
6/6 [==============================] - 2s 342ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 226/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 227/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 228/500
6/6 [==============================] - 2s 336ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 229/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 230/500
6/6 [==============================] - 2s 329ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 231/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 232/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 233/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 234/500
6/6 [==============================] - 2s 336ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 235/500
6/6 [==============================] - 2s 344ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 236/500
6/6 [==============================] - 2s 347ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 237/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 238/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 239/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 240/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 241/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 242/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 243/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 244/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 245/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 246/500
6/6 [==============================] - 2s 330ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 247/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 248/500
6/6 [==============================] - 2s 313ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 249/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 250/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 251/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 252/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 253/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 254/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 255/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 256/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 257/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 258/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 259/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 260/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 261/500
6/6 [==============================] - 2s 381ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 262/500
6/6 [==============================] - 2s 336ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 263/500
6/6 [==============================] - 2s 335ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 264/500
6/6 [==============================] - 2s 341ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 265/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 266/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 267/500
6/6 [==============================] - 2s 335ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 268/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 269/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 270/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 271/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 272/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 273/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 274/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 275/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 276/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 277/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 278/500
6/6 [==============================] - 2s 342ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 279/500
6/6 [==============================] - 2s 360ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 280/500
6/6 [==============================] - 2s 342ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 281/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 282/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 283/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 284/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 285/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 286/500
6/6 [==============================] - 2s 328ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 287/500
6/6 [==============================] - 2s 345ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 288/500
6/6 [==============================] - 2s 342ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 289/500
6/6 [==============================] - 2s 393ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 290/500
6/6 [==============================] - 2s 350ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 291/500
6/6 [==============================] - 2s 383ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 292/500
6/6 [==============================] - 2s 342ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 293/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 294/500
6/6 [==============================] - 2s 347ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 295/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 296/500
6/6 [==============================] - 2s 345ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 297/500
6/6 [==============================] - 2s 334ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 298/500
6/6 [==============================] - 2s 342ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 299/500
6/6 [==============================] - 2s 361ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 300/500
6/6 [==============================] - 2s 370ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 301/500
6/6 [==============================] - 2s 345ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 302/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 303/500
6/6 [==============================] - 2s 328ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 304/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 305/500
6/6 [==============================] - 2s 343ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 306/500
6/6 [==============================] - 2s 351ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 307/500
6/6 [==============================] - 2s 350ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 308/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 309/500
6/6 [==============================] - 2s 350ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 310/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 311/500
6/6 [==============================] - 2s 342ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 312/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 313/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 314/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 315/500
6/6 [==============================] - 2s 353ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 316/500
6/6 [==============================] - 2s 336ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 317/500
6/6 [==============================] - 2s 345ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 318/500
6/6 [==============================] - 2s 349ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 319/500
6/6 [==============================] - 2s 365ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 320/500
6/6 [==============================] - 2s 330ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 321/500
6/6 [==============================] - 2s 330ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 322/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 323/500
6/6 [==============================] - 2s 345ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 324/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 325/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 326/500
6/6 [==============================] - 2s 360ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 327/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 328/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 329/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 330/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 331/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 332/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 333/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 334/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 335/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 336/500
6/6 [==============================] - 2s 332ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 337/500
6/6 [==============================] - 2s 356ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 338/500
6/6 [==============================] - 2s 326ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 339/500
6/6 [==============================] - 2s 363ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 340/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 341/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 342/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 343/500
6/6 [==============================] - 2s 334ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 344/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 345/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 346/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 347/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 348/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 349/500
6/6 [==============================] - 2s 334ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 350/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 351/500
6/6 [==============================] - 2s 332ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 352/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 353/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 354/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 355/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 356/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 357/500
6/6 [==============================] - 2s 334ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 358/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 359/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 360/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 361/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 362/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 363/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 364/500
6/6 [==============================] - 2s 332ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 365/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 366/500
6/6 [==============================] - 2s 351ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 367/500
6/6 [==============================] - 2s 368ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 368/500
6/6 [==============================] - 2s 330ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 369/500
6/6 [==============================] - 2s 361ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 370/500
6/6 [==============================] - 2s 364ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 371/500
6/6 [==============================] - 2s 329ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 372/500
6/6 [==============================] - 2s 329ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 373/500
6/6 [==============================] - 2s 331ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 374/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 375/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 376/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 377/500
6/6 [==============================] - 2s 328ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 378/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 379/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 380/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 381/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 382/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 383/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 384/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 385/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 386/500
6/6 [==============================] - 2s 344ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 387/500
6/6 [==============================] - 2s 346ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 388/500
6/6 [==============================] - 2s 361ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 389/500
6/6 [==============================] - 2s 328ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 390/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 391/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 392/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 393/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 394/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 395/500
6/6 [==============================] - 2s 340ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 396/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 397/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 398/500
6/6 [==============================] - 2s 328ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 399/500
6/6 [==============================] - 2s 337ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 400/500
6/6 [==============================] - 2s 327ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 401/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 402/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 403/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 404/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 405/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 406/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 407/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 408/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 409/500
6/6 [==============================] - 2s 344ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 410/500
6/6 [==============================] - 2s 336ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 411/500
6/6 [==============================] - 2s 360ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 412/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 413/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 414/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 415/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 416/500
6/6 [==============================] - 2s 330ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 417/500
6/6 [==============================] - 2s 332ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 418/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0068 - mse: 0.0068 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 419/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0069 - mse: 0.0069 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 420/500
6/6 [==============================] - 2s 312ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 421/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0065 - mse: 0.0065 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 422/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 423/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 424/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 425/500
6/6 [==============================] - 2s 336ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 426/500
6/6 [==============================] - 2s 351ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 427/500
6/6 [==============================] - 2s 345ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 428/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 429/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 430/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 431/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 432/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 433/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 434/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 435/500
6/6 [==============================] - 2s 336ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 436/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 437/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 438/500
6/6 [==============================] - 2s 349ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 439/500
6/6 [==============================] - 2s 334ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 440/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 441/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 442/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 443/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 444/500
6/6 [==============================] - 2s 335ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 445/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 446/500
6/6 [==============================] - 2s 341ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 447/500
6/6 [==============================] - 2s 343ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 448/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 449/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 450/500
6/6 [==============================] - 2s 320ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 451/500
6/6 [==============================] - 2s 313ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 452/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 453/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0077 - val_mse: 0.0077
Epoch 454/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0072 - val_mse: 0.0072
Epoch 455/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0075 - val_mse: 0.0075
Epoch 456/500
6/6 [==============================] - 2s 311ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 457/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0074 - val_mse: 0.0074
Epoch 458/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 459/500
6/6 [==============================] - 2s 309ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 460/500
6/6 [==============================] - 2s 313ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 461/500
6/6 [==============================] - 2s 310ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 462/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 463/500
6/6 [==============================] - 2s 331ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 464/500
6/6 [==============================] - 2s 337ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 465/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 466/500
6/6 [==============================] - 2s 325ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 467/500
6/6 [==============================] - 2s 358ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 468/500
6/6 [==============================] - 2s 323ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 469/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 470/500
6/6 [==============================] - 2s 322ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 471/500
6/6 [==============================] - 2s 332ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 472/500
6/6 [==============================] - 2s 312ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 473/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 474/500
6/6 [==============================] - 2s 314ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 475/500
6/6 [==============================] - 2s 313ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 476/500
6/6 [==============================] - 2s 330ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 477/500
6/6 [==============================] - 2s 333ms/step - loss: 0.0063 - mse: 0.0063 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 478/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 479/500
6/6 [==============================] - 2s 339ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0077 - val_mse: 0.0077
Epoch 480/500
6/6 [==============================] - 2s 369ms/step - loss: 0.0067 - mse: 0.0067 - val_loss: 0.0073 - val_mse: 0.0073
Epoch 481/500
6/6 [==============================] - 2s 369ms/step - loss: 0.0064 - mse: 0.0064 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 482/500
6/6 [==============================] - 2s 338ms/step - loss: 0.0062 - mse: 0.0062 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 483/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0061 - mse: 0.0061 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 484/500
6/6 [==============================] - 2s 345ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 485/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 486/500
6/6 [==============================] - 2s 324ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 487/500
6/6 [==============================] - 2s 344ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 488/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 489/500
6/6 [==============================] - 2s 321ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0069 - val_mse: 0.0069
Epoch 490/500
6/6 [==============================] - 2s 349ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 491/500
6/6 [==============================] - 2s 328ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 492/500
6/6 [==============================] - 2s 335ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 493/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 494/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0058 - mse: 0.0058 - val_loss: 0.0071 - val_mse: 0.0071
Epoch 495/500
6/6 [==============================] - 2s 318ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 496/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 497/500
6/6 [==============================] - 2s 317ms/step - loss: 0.0059 - mse: 0.0059 - val_loss: 0.0070 - val_mse: 0.0070
Epoch 498/500
6/6 [==============================] - 2s 315ms/step - loss: 0.0060 - mse: 0.0060 - val_loss: 0.0081 - val_mse: 0.0081
Epoch 499/500
6/6 [==============================] - 2s 316ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0076 - val_mse: 0.0076
Epoch 500/500
6/6 [==============================] - 2s 319ms/step - loss: 0.0066 - mse: 0.0066 - val_loss: 0.0076 - val_mse: 0.0076
In [ ]:
# Plot the training and validation loss at each epoch
loss = history.history['loss']
val_loss = history.history['val_loss']
epochs = range(1, len(loss) + 1)
plt.plot(epochs, loss, 'y', label='Training loss')
plt.plot(epochs, val_loss, 'r', label='Validation loss')
plt.title('Training and validation loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
plt.show()
No description has been provided for this image
In [ ]:
# Get all batches generated by the datagen and pick a batch for prediction
data_batch = []  # Capture all training batches as a numpy array
img_num = 0
while img_num <= train_generator.batch_index:  # gets each generated batch of size batch_size
    data = train_generator.next()
    data_batch.append(data[0])
    img_num += 1

predicted = model.predict(data_batch[0])  # Predict on the first batch of images

# Sanity check, view few images and corresponding reconstructions
image_number = random.randint(0, predicted.shape[0])
plt.figure(figsize=(12, 6))
plt.subplot(121)
plt.imshow(data_batch[0][image_number])
plt.subplot(122)
plt.imshow(predicted[image_number])
plt.show()
2/2 [==============================] - 0s 194ms/step
No description has been provided for this image
In [ ]:
# Let us examine the reconstruction error between our validation data (good/normal images) and the anomaly images
validation_error = model.evaluate(validation_generator)
anomaly_error = model.evaluate(anomaly_generator)

print("Reconstruction error for the validation (normal) data is: ", validation_error)
print("Reconstruction error for the anomaly data is: ", anomaly_error)
4/4 [==============================] - 1s 74ms/step - loss: 0.0076 - mse: 0.0076
6/6 [==============================] - 1s 259ms/step - loss: 0.0162 - mse: 0.0162
Reconstruction error for the validation (normal) data is:  [0.007616638671606779, 0.007616638205945492]
Reconstruction error for the anomaly data is:  [0.016152305528521538, 0.01615230366587639]
In [ ]:
# Extract the encoder network with trained weights for KDE
encoder_model = Sequential()
encoder_model.add(Conv2D(64, (3, 3), activation='relu', padding='same', input_shape=(SIZE, SIZE, 3), weights=model.layers[0].get_weights()))
encoder_model.add(MaxPooling2D((2, 2), padding='same'))
encoder_model.add(Conv2D(32, (3, 3), activation='relu', padding='same', weights=model.layers[2].get_weights()))
encoder_model.add(MaxPooling2D((2, 2), padding='same'))
encoder_model.add(Conv2D(16, (3, 3), activation='relu', padding='same', weights=model.layers[4].get_weights()))
encoder_model.add(MaxPooling2D((2, 2), padding='same'))
encoder_model.add(Conv2D(8, (3, 3), activation='relu', padding='same', weights=model.layers[6].get_weights()))
encoder_model.add(MaxPooling2D((2, 2), padding='same'))
encoder_model.add(Conv2D(8, (3, 3), activation='tanh', padding='same', weights=model.layers[8].get_weights()))
encoder_model.add(MaxPooling2D((2, 2), padding='same'))
encoder_model.summary()

# Calculate KDE using sklearn
encoded_images = encoder_model.predict(train_generator)

# Flatten the encoder output because KDE from sklearn takes 1D vectors as input
encoder_output_shape = encoder_model.output_shape
out_vector_shape = encoder_output_shape[1]*encoder_output_shape[2]*encoder_output_shape[3]

encoded_images_vector = [np.reshape(img, (out_vector_shape)) for img in encoded_images]

# Fit KDE to the image latent data
kde = KernelDensity(kernel='gaussian', bandwidth=0.2).fit(encoded_images_vector)
Model: "sequential_1"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 conv2d_11 (Conv2D)          (None, 224, 224, 64)      1792      
                                                                 
 max_pooling2d_5 (MaxPooling  (None, 112, 112, 64)     0         
 2D)                                                             
                                                                 
 conv2d_12 (Conv2D)          (None, 112, 112, 32)      18464     
                                                                 
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 conv2d_11 (Conv2D)          (None, 224, 224, 64)      1792      
                                                                 
 max_pooling2d_5 (MaxPooling  (None, 112, 112, 64)     0         
 2D)                                                             
                                                                 
 conv2d_12 (Conv2D)          (None, 112, 112, 32)      18464     
                                                                 
 max_pooling2d_6 (MaxPooling  (None, 56, 56, 32)       0         
 2D)                                                             
                                                                 
 conv2d_13 (Conv2D)          (None, 56, 56, 16)        4624      
                                                                 
 max_pooling2d_7 (MaxPooling  (None, 28, 28, 16)       0         
 2D)                                                             
                                                                 
 conv2d_14 (Conv2D)          (None, 28, 28, 8)         1160      
                                                                 
 max_pooling2d_8 (MaxPooling  (None, 14, 14, 8)        0         
 2D)                                                             
                                                                 
 conv2d_15 (Conv2D)          (None, 14, 14, 8)         584       
                                                                 
 max_pooling2d_9 (MaxPooling  (None, 7, 7, 8)          0         
 2D)                                                             
                                                                 
=================================================================
Total params: 26,624
Trainable params: 26,624
Non-trainable params: 0
_________________________________________________________________
6/6 [==============================] - 1s 51ms/step
In [ ]:
# Calculate density and reconstruction error to find their means values for good and anomaly images
def calc_density_and_recon_error(batch_images):
    density_list = []
    recon_error_list = []
    for im in range(0, batch_images.shape[0] - 1):
        img = batch_images[im]
        img = img[np.newaxis, :, :, :]
        encoded_img = encoder_model.predict(img)
        encoded_img = [np.reshape(img, (out_vector_shape)) for img in encoded_img]
        density = kde.score_samples(encoded_img)[0]
        reconstruction = model.predict(img)
        reconstruction_error = model.evaluate(reconstruction, img, batch_size=1)[0]
        density_list.append(density)
        recon_error_list.append(reconstruction_error)
    
    average_density = np.mean(np.array(density_list))
    stdev_density = np.std(np.array(density_list))
    average_recon_error = np.mean(np.array(recon_error_list))
    stdev_recon_error = np.std(np.array(recon_error_list))
    
    return average_density, stdev_density, average_recon_error, stdev_recon_error

train_batch = train_generator.next()[0]
anomaly_batch = anomaly_generator.next()[0]

uninfected_values = calc_density_and_recon_error(train_batch)
infected_values = calc_density_and_recon_error(anomaly_batch)

print("Average density (non-anomalous images): ", uninfected_values[0])
print("Standard deviation density (non-anomalous images): ", uninfected_values[1])
print("Average reconstruction error (non-anomalous images): ", uninfected_values[2])
print("Standard deviation reconstruction error (non-anomalous images): ", uninfected_values[3])

print("Average density (anomalous images): ", infected_values[0])
print("Standard deviation density (anomalous images): ", infected_values[1])
print("Average reconstruction error (anomalous images): ", infected_values[2])
print("Standard deviation reconstruction error (anomalous images): ", infected_values[3])
1/1 [==============================] - 0s 440ms/step
1/1 [==============================] - 0s 440ms/step
1/1 [==============================] - 0s 154ms/step
1/1 [==============================] - 0s 18ms/step - loss: 5.2554e-04 - mse: 5.2554e-04
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0117 - mse: 0.0117
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 15ms/step - loss: 0.0130 - mse: 0.0130
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0131 - mse: 0.0131
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0135 - mse: 0.0135
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0136 - mse: 0.0136
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0140 - mse: 0.0140
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0145 - mse: 0.0145
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 14ms/step - loss: 0.0145 - mse: 0.0145
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 22ms/step
1/1 [==============================] - 0s 13ms/step - loss: 0.0146 - mse: 0.0146
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 14ms/step - loss: 0.0148 - mse: 0.0148
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 13ms/step - loss: 0.0155 - mse: 0.0155
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0120 - mse: 0.0120
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0152 - mse: 0.0152
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 25ms/step - loss: 0.0151 - mse: 0.0151
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0151 - mse: 0.0151
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 14ms/step - loss: 0.0148 - mse: 0.0148
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0147 - mse: 0.0147
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0150 - mse: 0.0150
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 23ms/step - loss: 5.5264e-04 - mse: 5.5264e-04
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 20ms/step - loss: 4.5388e-04 - mse: 4.5388e-04
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step - loss: 4.5578e-04 - mse: 4.5578e-04
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 21ms/step - loss: 3.9368e-04 - mse: 3.9368e-04
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 24ms/step - loss: 0.0121 - mse: 0.0121
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 18ms/step - loss: 3.7241e-04 - mse: 3.7241e-04
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 19ms/step - loss: 3.7079e-04 - mse: 3.7079e-04
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 13ms/step - loss: 3.7443e-04 - mse: 3.7443e-04
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 11ms/step - loss: 4.0844e-04 - mse: 4.0844e-04
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 19ms/step - loss: 4.7740e-04 - mse: 4.7740e-04
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 5ms/step
1/1 [==============================] - 0s 16ms/step - loss: 6.8069e-04 - mse: 6.8069e-04
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 18ms/step - loss: 9.1161e-04 - mse: 9.1161e-04
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 17ms/step - loss: 9.0464e-04 - mse: 9.0464e-04
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0012 - mse: 0.0012
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 30ms/step - loss: 0.0014 - mse: 0.0014
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0123 - mse: 0.0123
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 27ms/step - loss: 0.0016 - mse: 0.0016
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0020 - mse: 0.0020
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 26ms/step - loss: 0.0024 - mse: 0.0024
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0027 - mse: 0.0027
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 23ms/step - loss: 0.0029 - mse: 0.0029
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 27ms/step - loss: 0.0031 - mse: 0.0031
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 15ms/step - loss: 0.0032 - mse: 0.0032
1/1 [==============================] - 0s 7ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 26ms/step - loss: 0.0038 - mse: 0.0038
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 7ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0043 - mse: 0.0043
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 24ms/step - loss: 0.0048 - mse: 0.0048
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0124 - mse: 0.0124
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 26ms/step - loss: 0.0050 - mse: 0.0050
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 32ms/step - loss: 0.0050 - mse: 0.0050
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 31ms/step - loss: 0.0050 - mse: 0.0050
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 36ms/step - loss: 0.0051 - mse: 0.0051
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0054 - mse: 0.0054
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0059 - mse: 0.0059
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 30ms/step - loss: 0.0063 - mse: 0.0063
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 31ms/step - loss: 0.0063 - mse: 0.0063
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 27ms/step - loss: 0.0070 - mse: 0.0070
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 27ms/step - loss: 0.0071 - mse: 0.0071
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0124 - mse: 0.0124
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 23ms/step - loss: 0.0076 - mse: 0.0076
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 30ms/step - loss: 0.0080 - mse: 0.0080
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 31ms/step - loss: 0.0082 - mse: 0.0082
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0082 - mse: 0.0082
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 7ms/step
1/1 [==============================] - 0s 32ms/step - loss: 0.0085 - mse: 0.0085
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0088 - mse: 0.0088
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 27ms/step - loss: 0.0154 - mse: 0.0154
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 5ms/step
1/1 [==============================] - 0s 25ms/step - loss: 0.0113 - mse: 0.0113
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0162 - mse: 0.0162
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0160 - mse: 0.0160
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0155 - mse: 0.0155
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 7ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0153 - mse: 0.0153
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0154 - mse: 0.0154
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0153 - mse: 0.0153
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 25ms/step - loss: 0.0146 - mse: 0.0146
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0142 - mse: 0.0142
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 17ms/step - loss: 0.0142 - mse: 0.0142
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 22ms/step - loss: 0.0141 - mse: 0.0141
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0139 - mse: 0.0139
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 23ms/step - loss: 0.0135 - mse: 0.0135
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 26ms/step - loss: 0.0133 - mse: 0.0133
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 25ms/step - loss: 0.0158 - mse: 0.0158
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 31ms/step - loss: 0.0157 - mse: 0.0157
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 32ms/step - loss: 0.0156 - mse: 0.0156
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0151 - mse: 0.0151
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0152 - mse: 0.0152
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0156 - mse: 0.0156
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 32ms/step - loss: 0.0155 - mse: 0.0155
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0156 - mse: 0.0156
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 30ms/step - loss: 0.0159 - mse: 0.0159
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0160 - mse: 0.0160
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 33ms/step - loss: 0.0156 - mse: 0.0156
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 4ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0154 - mse: 0.0154
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 27ms/step - loss: 0.0156 - mse: 0.0156
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0153 - mse: 0.0153
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0152 - mse: 0.0152
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0157 - mse: 0.0157
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 30ms/step - loss: 0.0159 - mse: 0.0159
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 23ms/step - loss: 0.0157 - mse: 0.0157
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 30ms/step - loss: 0.0157 - mse: 0.0157
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0162 - mse: 0.0162
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0161 - mse: 0.0161
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 15ms/step - loss: 0.0165 - mse: 0.0165
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 22ms/step - loss: 0.0168 - mse: 0.0168
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0170 - mse: 0.0170
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0170 - mse: 0.0170
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0168 - mse: 0.0168
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0168 - mse: 0.0168
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 26ms/step - loss: 0.0168 - mse: 0.0168
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0171 - mse: 0.0171
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 24ms/step - loss: 0.0172 - mse: 0.0172
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0171 - mse: 0.0171
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0175 - mse: 0.0175
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0176 - mse: 0.0176
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 17ms/step - loss: 0.0178 - mse: 0.0178
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0196 - mse: 0.0196
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0180 - mse: 0.0180
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0186 - mse: 0.0186
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 15ms/step - loss: 0.0195 - mse: 0.0195
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 22ms/step - loss: 0.0195 - mse: 0.0195
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 7ms/step
1/1 [==============================] - 0s 14ms/step - loss: 0.0187 - mse: 0.0187
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 24ms/step - loss: 0.0186 - mse: 0.0186
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 17ms/step - loss: 0.0192 - mse: 0.0192
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0188 - mse: 0.0188
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 23ms/step - loss: 0.0191 - mse: 0.0191
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 32ms/step - loss: 0.0191 - mse: 0.0191
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 33ms/step - loss: 0.0187 - mse: 0.0187
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0188 - mse: 0.0188
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0190 - mse: 0.0190
Average density (non-anomalous images):  265.90301190444285
Standard deviation density (non-anomalous images):  1.4092016876758164
Average reconstruction error (non-anomalous images):  0.0071697112695787045
Standard deviation reconstruction error (non-anomalous images):  0.005428037451500858
Average density (anomalous images):  212.46010726773497
Standard deviation density (anomalous images):  38.00109820385244
Average reconstruction error (anomalous images):  0.0164047499142942
Standard deviation reconstruction error (anomalous images):  0.0017265816782982793
In [ ]:
# Generate final prediction for validation and anomaly images based on reconstruction error and density of the encoded images
def predict_images(batch_images, avg_density, std_density, avg_recon_error, std_recon_error):
    predictions = []
    density_list = []
    recon_error_list = []
    for im in range(0, batch_images.shape[0] - 1):
        img = batch_images[im]
        img = img[np.newaxis, :, :, :]
        encoded_img = encoder_model.predict(img)
        encoded_img = [np.reshape(img, (out_vector_shape)) for img in encoded_img]
        density = kde.score_samples(encoded_img)[0]
        reconstruction = model.predict(img)
        reconstruction_error = model.evaluate(reconstruction, img, batch_size=1)[0]
        density_list.append(density)
        recon_error_list.append(reconstruction_error)
        if density < avg_density - std_density or reconstruction_error > avg_recon_error + std_recon_error:
       # if reconstruction_error < avg_recon_error + std_recon_error :

            predictions.append(1)
        else:
            predictions.append(0)
    
    return predictions, density_list, recon_error_list

validation_batch = validation_generator.next()[0]
anomaly_batch = anomaly_generator.next()[0]

validation_predictions, validation_densities, validation_errors = predict_images(validation_batch, 
                                                                    uninfected_values[0], 
                                                                    uninfected_values[1], 
                                                                    uninfected_values[2], 
                                                                    uninfected_values[3])

anomaly_predictions, anomaly_densities, anomaly_errors = predict_images(anomaly_batch, 
                                                                    uninfected_values[0], 
                                                                    uninfected_values[1], 
                                                                    uninfected_values[2], 
                                                                    uninfected_values[3])
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0038 - mse: 0.0038
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 22ms/step - loss: 3.9086e-04 - mse: 3.9086e-04
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0049 - mse: 0.0049
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 26ms/step - loss: 4.2954e-04 - mse: 4.2954e-04
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 21ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0056 - mse: 0.0056
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 30ms/step - loss: 4.4401e-04 - mse: 4.4401e-04
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0130 - mse: 0.0130
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 24ms/step - loss: 0.0125 - mse: 0.0125
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0128 - mse: 0.0128
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0128 - mse: 0.0128
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 28ms/step - loss: 3.6452e-04 - mse: 3.6452e-04
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 28ms/step - loss: 4.4874e-04 - mse: 4.4874e-04
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 26ms/step - loss: 3.9513e-04 - mse: 3.9513e-04
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0061 - mse: 0.0061
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 16ms/step - loss: 6.7565e-04 - mse: 6.7565e-04
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 16ms/step - loss: 3.7368e-04 - mse: 3.7368e-04
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 28ms/step - loss: 3.7878e-04 - mse: 3.7878e-04
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 16ms/step - loss: 3.6879e-04 - mse: 3.6879e-04
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 20ms/step - loss: 3.5445e-04 - mse: 3.5445e-04
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 16ms/step - loss: 3.6611e-04 - mse: 3.6611e-04
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 25ms/step - loss: 3.5850e-04 - mse: 3.5850e-04
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 31ms/step - loss: 3.5431e-04 - mse: 3.5431e-04
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 28ms/step - loss: 3.5890e-04 - mse: 3.5890e-04
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 27ms/step - loss: 3.6203e-04 - mse: 3.6203e-04
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 27ms/step - loss: 4.3285e-04 - mse: 4.3285e-04
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 23ms/step
1/1 [==============================] - 0s 22ms/step - loss: 0.0068 - mse: 0.0068
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 18ms/step - loss: 6.6502e-04 - mse: 6.6502e-04
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 23ms/step - loss: 6.4777e-04 - mse: 6.4777e-04
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 22ms/step - loss: 9.6209e-04 - mse: 9.6209e-04
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 30ms/step - loss: 0.0012 - mse: 0.0012
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0014 - mse: 0.0014
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0020 - mse: 0.0020
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0025 - mse: 0.0025
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0027 - mse: 0.0027
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0028 - mse: 0.0028
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0031 - mse: 0.0031
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 27ms/step - loss: 0.0037 - mse: 0.0037
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 25ms/step - loss: 0.0070 - mse: 0.0070
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 24ms/step - loss: 0.0010 - mse: 0.0010
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 30ms/step - loss: 0.0044 - mse: 0.0044
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 17ms/step - loss: 0.0044 - mse: 0.0044
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0052 - mse: 0.0052
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0056 - mse: 0.0056
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0063 - mse: 0.0063
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 24ms/step - loss: 0.0063 - mse: 0.0063
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0064 - mse: 0.0064
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 15ms/step - loss: 0.0065 - mse: 0.0065
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0067 - mse: 0.0067
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0076 - mse: 0.0076
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0012 - mse: 0.0012
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 24ms/step - loss: 0.0076 - mse: 0.0076
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0079 - mse: 0.0079
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 32ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0081 - mse: 0.0081
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 31ms/step - loss: 0.0083 - mse: 0.0083
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0084 - mse: 0.0084
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 17ms/step - loss: 0.0091 - mse: 0.0091
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0092 - mse: 0.0092
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 14ms/step - loss: 0.0087 - mse: 0.0087
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 18ms/step - loss: 3.5712e-04 - mse: 3.5712e-04
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0081 - mse: 0.0081
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0015 - mse: 0.0015
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0071 - mse: 0.0071
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 15ms/step - loss: 0.0075 - mse: 0.0075
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0193 - mse: 0.0193
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0195 - mse: 0.0195
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0196 - mse: 0.0196
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0193 - mse: 0.0193
1/1 [==============================] - 0s 26ms/step
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0193 - mse: 0.0193
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0194 - mse: 0.0194
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 7ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0191 - mse: 0.0191
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0185 - mse: 0.0185
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 7ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0186 - mse: 0.0186
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0177 - mse: 0.0177
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0173 - mse: 0.0173
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0164 - mse: 0.0164
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 17ms/step - loss: 0.0158 - mse: 0.0158
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0150 - mse: 0.0150
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 27ms/step - loss: 0.0141 - mse: 0.0141
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 31ms/step - loss: 0.0140 - mse: 0.0140
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 31ms/step - loss: 0.0137 - mse: 0.0137
1/1 [==============================] - 0s 3ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0136 - mse: 0.0136
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 32ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0133 - mse: 0.0133
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 32ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0133 - mse: 0.0133
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 17ms/step - loss: 0.0132 - mse: 0.0132
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 33ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0131 - mse: 0.0131
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 18ms/step - loss: 0.0137 - mse: 0.0137
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 17ms/step - loss: 0.0135 - mse: 0.0135
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 22ms/step - loss: 0.0134 - mse: 0.0134
1/1 [==============================] - 0s 19ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 32ms/step - loss: 0.0138 - mse: 0.0138
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 35ms/step - loss: 0.0140 - mse: 0.0140
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0137 - mse: 0.0137
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 34ms/step - loss: 0.0137 - mse: 0.0137
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0138 - mse: 0.0138
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0140 - mse: 0.0140
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0144 - mse: 0.0144
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 17ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0145 - mse: 0.0145
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 24ms/step - loss: 0.0147 - mse: 0.0147
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 32ms/step - loss: 0.0147 - mse: 0.0147
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 25ms/step - loss: 0.0147 - mse: 0.0147
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 31ms/step - loss: 0.0147 - mse: 0.0147
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 16ms/step - loss: 0.0151 - mse: 0.0151
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 18ms/step
1/1 [==============================] - 0s 29ms/step - loss: 0.0151 - mse: 0.0151
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 7ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0151 - mse: 0.0151
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0149 - mse: 0.0149
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 4ms/step
1/1 [==============================] - 0s 13ms/step - loss: 0.0147 - mse: 0.0147
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0147 - mse: 0.0147
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 28ms/step - loss: 0.0150 - mse: 0.0150
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 23ms/step - loss: 0.0153 - mse: 0.0153
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0153 - mse: 0.0153
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 28ms/step
1/1 [==============================] - 0s 25ms/step - loss: 0.0151 - mse: 0.0151
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 31ms/step - loss: 0.0155 - mse: 0.0155
1/1 [==============================] - 0s 12ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 14ms/step - loss: 0.0160 - mse: 0.0160
1/1 [==============================] - 0s 14ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0155 - mse: 0.0155
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 5ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0154 - mse: 0.0154
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 22ms/step - loss: 0.0160 - mse: 0.0160
1/1 [==============================] - 0s 20ms/step
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 23ms/step - loss: 0.0160 - mse: 0.0160
1/1 [==============================] - 0s 25ms/step
1/1 [==============================] - 0s 9ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0162 - mse: 0.0162
1/1 [==============================] - 0s 15ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0166 - mse: 0.0166
1/1 [==============================] - 0s 24ms/step
1/1 [==============================] - 0s 8ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0166 - mse: 0.0166
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0170 - mse: 0.0170
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0169 - mse: 0.0169
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 7ms/step
1/1 [==============================] - 0s 19ms/step - loss: 0.0170 - mse: 0.0170
1/1 [==============================] - 0s 16ms/step
1/1 [==============================] - 0s 31ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0170 - mse: 0.0170
1/1 [==============================] - 0s 29ms/step
1/1 [==============================] - 0s 30ms/step
1/1 [==============================] - 0s 23ms/step - loss: 0.0172 - mse: 0.0172
1/1 [==============================] - 0s 13ms/step
1/1 [==============================] - 0s 11ms/step
1/1 [==============================] - 0s 21ms/step - loss: 0.0171 - mse: 0.0171
1/1 [==============================] - 0s 27ms/step
1/1 [==============================] - 0s 10ms/step
1/1 [==============================] - 0s 20ms/step - loss: 0.0172 - mse: 0.0172
In [ ]:
# Create true values for the predictions
true_values_validation = np.zeros(len(validation_predictions))
true_values_anomaly = np.ones(len(anomaly_predictions))

# Combining the results and calculating evaluation metrics
predictions_combined = np.concatenate([validation_predictions, anomaly_predictions])
true_values_combined = np.concatenate([true_values_validation, true_values_anomaly])

print("Confusion Matrix:\n", confusion_matrix(true_values_combined, predictions_combined))
print("Classification Report:\n", classification_report(true_values_combined, predictions_combined))
print("Accuracy Score: ", accuracy_score(true_values_combined, predictions_combined))
print("Precision Score: ", precision_score(true_values_combined, predictions_combined))
print("Recall Score: ", recall_score(true_values_combined, predictions_combined))
print("F1 Score: ", f1_score(true_values_combined, predictions_combined))
Confusion Matrix:
 [[34 29]
 [ 0 63]]
Classification Report:
               precision    recall  f1-score   support

         0.0       1.00      0.54      0.70        63
         1.0       0.68      1.00      0.81        63

    accuracy                           0.77       126
   macro avg       0.84      0.77      0.76       126
weighted avg       0.84      0.77      0.76       126

Accuracy Score:  0.7698412698412699
Precision Score:  0.6847826086956522
Recall Score:  1.0
F1 Score:  0.8129032258064516
In [ ]:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix, classification_report, accuracy_score, precision_score, recall_score, f1_score

# Define your functions and existing code here
# calc_density_and_recon_error, predict_images, etc.

# Visualize a maximum of 30 images for each class
def visualize_predictions(images, predictions, densities, errors, true_labels, class_names, max_per_class=30):
    # Convert inputs to lists if they are not already
    images = list(images)
    predictions = list(predictions)
    densities = list(densities)
    errors = list(errors)
    true_labels = list(true_labels)
    
    # Filter out a maximum of max_per_class images for each class
    filtered_images = []
    filtered_predictions = []
    filtered_densities = []
    filtered_errors = []
    filtered_true_labels = []
    
    for class_label in range(len(class_names)):
        class_indices = [i for i, label in enumerate(true_labels) if label == class_label]
        class_indices = class_indices[:max_per_class]
        
        filtered_images.extend([images[i] for i in class_indices])
        filtered_predictions.extend([predictions[i] for i in class_indices])
        filtered_densities.extend([densities[i] for i in class_indices])
        filtered_errors.extend([errors[i] for i in class_indices])
        filtered_true_labels.extend([true_labels[i] for i in class_indices])
    
    num_images = len(filtered_images)
    num_cols = 5
    num_rows = (num_images + num_cols - 1) // num_cols  # Ceiling division
    plt.figure(figsize=(20, num_rows * 4))  # Adjust the height based on the number of rows
    
    for i in range(num_images):
        plt.subplot(num_rows, num_cols, i + 1)
        plt.imshow(filtered_images[i])
        pred_class = int(filtered_predictions[i])
        true_class = int(filtered_true_labels[i])
        plt.title(f"Pred: {class_names[pred_class]}\nTrue: {class_names[true_class]}\nDensity: {filtered_densities[i]:.2f}\nError: {filtered_errors[i]:.2f}")
        plt.axis('off')
    
    plt.tight_layout()
    plt.show()
# Visualize anomaly images
visualize_predictions(anomaly_batch, anomaly_predictions, anomaly_densities, anomaly_errors, true_values_anomaly, class_names=["Normal", "Anomaly"])
No description has been provided for this image
In [ ]:
# Visualize validation images
visualize_predictions(validation_batch, validation_predictions, validation_densities, validation_errors, true_values_validation, class_names=["Normal", "Anomaly"])
No description has been provided for this image